This explores potential numeric cutoff of central signs in the diagnosis of central dysfunction. Data obtained from 07182017 Data Request was utilized for this analysis.

Demographic Information

Total Patients: 743
Time in Service: 18.14 ± 6.56
Average Patient Age: 38.85 ± 6.56

Patient Age Labeled:


Age_lbl N Percent
20 to 24 12 1.62
25 to 29 61 8.21
30 to 34 112 15.07
35 to 39 189 25.44
40 to 44 230 30.96
45 to 49 104 14.00
50 to 54 29 3.90
55 to 60 6 0.81

Gender Counts:


Gender N Percent
M 731 98.38
F 12 1.62

Service Counts:


Service N Percent
Navy 456 61.37
Army 182 24.50
Marines 60 8.08
Air Force 44 5.92
Coast Guard 1 0.13

Patient Complaints

  The details of complaints are listed below. Total number of patients who exhibited each complaint as well as the percentage of patients with said complaint.

Average Number of Patient Symptoms: 2.24 ± 1.31
Symptoms N Perc
Dizziness_lightheadedness 555 71.80
Disequilibrium_imbalance 440 56.92
Vertigo_Spinning 263 34.02
Motion_Sensitivity 220 28.46
Syncope_pre_syncope 185 23.93

Central Counts


Average Central Counts: 2.24 ± 1.97
Median Central Counts: 2
Total Number of Central Tests: ~17

 

Total_C N CumN Perc CumPerc
13 1 1 0.13 0.13
11 1 2 0.13 0.26
9 3 5 0.40 0.66
8 4 9 0.54 1.20
7 15 24 2.02 3.22
6 26 50 3.50 6.72
5 55 105 7.40 14.12
4 68 173 9.15 23.27
3 101 274 13.59 36.86
2 152 426 20.46 57.32
1 163 589 21.94 79.26
0 154 743 20.73 99.99

Central Signs

  Below outlines the total number of patients with central findings per assessment. The percent is the percentage of patients who exhibited a central sign for that test.

Test Sum Perc
Oculomotor_Smooth_Pursuit_Vertical 481 62.23
Oculomotor_Smooth_Pursuit_Horizontal 201 26.00
Oculomotor_Saccades_Vertical 189 24.45
VNGTest_DixHallpike_Head_Right 127 16.43
VNGTest_DixHallpike_Head_Left 121 15.65
VNGTest_Roll_Test_Lateral_Left 119 15.39
VNGTest_Roll_Test_Lateral_Right 106 13.71
Oculomotor_Gaze_Right 79 10.22
Oculomotor_Gaze_Left 79 10.22
Oculomotor_Saccades_Horizontal 75 9.70
Oculomotor_Gaze_Up 44 5.69
Oculomotor_Gaze_Center 31 4.01
Oculomotor_Gaze_Down 29 3.75
Oculomotor_Optokinetic 23 2.98
VNGTest_Horizontal_Head_Shake 20 2.59
Oculomotor_Spontaneous_Nystagmus 18 2.33
Positioning_supine_Gaze_up 7 0.91
Positioning_supine_Gaze_Center 1 0.13
VNGTest_Roll_Test_Body_Right 1 0.13

Variable Exploration

  Below are scatterplots which compare the various variables of interest. While it is interesting to see correlations among the variables, which is most significant is how these variables respond to the changes in Total_C (Total Central Signs). From here onward, we will try to use extraneous variables to compare variances within the data.

Demographics Against Total Central

  Scatterplot displaying relationships among Injury and other demographics against Total_C.

Surveys Against Total Central

  Below displays the scatterplots of the various surveys against the total number of central signs. Also, should be noted the distribution of the tests within the diagonal.

Individual Survey Questions

&nbs; P, Fu, and E come from the DHI subscales - Physical, Funcional, and Emotional.

Changes in Means per Cutoffs

  We will compare the mean differences of surveys among our sample population with various cutoffs for Central Dysfunction. The values calculated below are ‘Normal Patient Means’ - ‘Central Patient Means’. Dependent upon the survey, a (-) mean difference signifies that Central Patients performed worse on that particular survey.

Surveys

Addtl Surveys

Specific Survey Questions

Variable Significance Testing

Variance Comparison

  Once we have determined the suggested cutoff for our grouping, we will examine the structure of the variables when comparing these two groups. Variance comparisons has been commented out. We’ll first explore other methods of explaining variance.

Regression Exploration

  Utilizing a regression, we can evaluate which variables contribute most to the variance exhibited within the total number of Central Signs. After scaling the variables, it appears that SOT and NSI explain much of the variance within Total Central signs. Additional exploration will be conducted on these variables, as well as the DHI, ABC and FGA; surveys/questionnaires which hope to provide insight into the varability exhibited in the total number of central signs.

## Stepwise Model Path 
## Analysis of Deviance Table
## 
## Initial Model:
## Total_C ~ ABC_Tot_Score + NSI_Tot_Score + PCLM_Tot_Score + PHQ9_Tot_Score + 
##     GAD7_Tot_Score + DHI_Tot_Score + FGA + SOT + LOC + AOC + 
##     PTA + TimeInService + symp_tot
## 
## Final Model:
## Total_C ~ NSI_Tot_Score + SOT + LOC
## 
## 
##                Step Df   Deviance Resid. Df Resid. Dev      AIC
## 1                                       416   1660.911 609.0745
## 2             - FGA  1 0.02056280       417   1660.931 607.0799
## 3  - PHQ9_Tot_Score  1 0.04407690       418   1660.975 605.0913
## 4   - TimeInService  1 0.05785070       419   1661.033 603.1063
## 5        - symp_tot  1 0.12849741       420   1661.162 601.1395
## 6   - DHI_Tot_Score  1 0.09796185       421   1661.260 599.1649
## 7             - PTA  1 0.23689418       422   1661.497 597.2262
## 8  - GAD7_Tot_Score  1 0.21278788       423   1661.709 595.2813
## 9             - AOC  1 1.30399859       424   1663.013 593.6186
## 10  - ABC_Tot_Score  1 2.48008364       425   1665.493 592.2593
## 11 - PCLM_Tot_Score  1 3.05270838       426   1668.546 591.0468
##  ABC_Tot_Score  NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score GAD7_Tot_Score 
##    0.022645624    0.232795310    0.043104926    0.045133686    0.033239361 
##  DHI_Tot_Score            FGA            SOT            LOC            AOC 
##    0.046782165    0.036470915    0.306744857    0.153372132    0.034368683 
##            PTA  TimeInService       symp_tot 
##    0.002708148    0.001791970    0.040842222
## Stepwise Model Path 
## Analysis of Deviance Table
## 
## Initial Model:
## Total_C ~ NSI_Q1 + NSI_Q2 + NSI_Q3 + NSI_Q4 + NSI_Q5 + NSI_Q6 + 
##     P + Fu + E + ABC_Tot_Score + FGA + SOT + LOC + AOC + PTA + 
##     TimeInService + symp_tot
## 
## Final Model:
## Total_C ~ NSI_Q2 + NSI_Q4 + SOT + LOC
## 
## 
##               Step Df   Deviance Resid. Df Resid. Dev        AIC
## 1                                      412   399.1904   4.030907
## 2              - P  1 0.05410681       413   399.2445   2.089186
## 3  - TimeInService  1 0.08165149       414   399.3262   0.177118
## 4  - ABC_Tot_Score  1 0.08575610       415   399.4119  -1.730549
## 5         - NSI_Q1  1 0.13433482       416   399.5462  -3.585950
## 6            - PTA  1 0.27589665       417   399.8221  -5.289127
## 7            - FGA  1 0.31264513       418   400.1348  -6.953015
## 8       - symp_tot  1 0.38134908       419   400.5161  -8.543398
## 9         - NSI_Q5  1 0.55109214       420   401.0672  -9.952145
## 10           - AOC  1 0.55738117       421   401.6246 -11.354969
## 11             - E  1 0.89831771       422   402.5229 -12.394258
## 12            - Fu  1 0.38645614       423   402.9094 -13.981619
## 13        - NSI_Q6  1 1.09987429       424   404.0093 -14.809392
## 14        - NSI_Q3  1 1.47928453       425   405.4885 -15.237817
##        NSI_Q1        NSI_Q2        NSI_Q3        NSI_Q4        NSI_Q5 
##   0.029044018   0.082923666   0.042073188   0.245128121   0.050620196 
##        NSI_Q6             P            Fu             E ABC_Tot_Score 
##   0.031735956   0.017132884   0.043260183   0.026079898   0.008534806 
##           FGA           SOT           LOC           AOC           PTA 
##   0.034753345   0.225801709   0.105449562   0.022912928   0.003382363 
## TimeInService      symp_tot 
##   0.002316847   0.028850331

Logistic Regression

  As shown in the previous tab, SOT, LOC, and NSI might explain some of the variance noticed within the Total C variable. We will reverse the analysis and look at the various groupings of Total C and compare their responses to these variables. Suggestive cutoff point would utilize 4 Total Central signs. Given the predictor variables: NSI Total Score (NSI Q2, NSI Q3), LOC, and SOT.

aov_data<-dhi%>%
  select('NSI_Q1','NSI_Q2','NSI_Q3','NSI_Q4','NSI_Q5','P','Fu','E','Total_C','NSI_Q6','ABC_Tot_Score','NSI_Tot_Score','PCLM_Tot_Score','PHQ9_Tot_Score','GAD7_Tot_Score','DHI_Tot_Score','FGA','SOT','LOC','AOC','PTA','TimeInService','symp_tot','Total_C','Age','Age_lbl')%>%
  filter(complete.cases(.))

auc<-NULL
for (i in 1:9){
  Cutoff<-paste0(quo_name(i),"")
  aov_data$I<-ifelse(aov_data$Total_C>=i,1,0)
  logic_fit<-glm(I~ABC_Tot_Score+NSI_Tot_Score+PCLM_Tot_Score+PHQ9_Tot_Score+GAD7_Tot_Score+DHI_Tot_Score+FGA+SOT+LOC+AOC+PTA+TimeInService+symp_tot,data=aov_data,family="binomial")
  prob<-predict(logic_fit,type=c("response"))
  aov_data$prob=prob
  g<-pROC::roc(I~prob,data=aov_data)
  #plot(g)
  a<-cbind(Cutoff,round(g$auc,4))
  auc<-rbind(auc,a)
}

#Full Model
print(auc)
##       Cutoff         
##  [1,] "1"    "0.6642"
##  [2,] "2"    "0.6328"
##  [3,] "3"    "0.6322"
##  [4,] "4"    "0.648" 
##  [5,] "5"    "0.6255"
##  [6,] "6"    "0.6504"
##  [7,] "7"    "0.7122"
##  [8,] "8"    "0.9557"
##  [9,] "9"    "0.9562"
auc<-NULL
for (i in 1:9){
  Cutoff<-paste0(quo_name(i),"")
  aov_data$I<-ifelse(aov_data$Total_C>=i,1,0)
  logic_fit<-glm(I~SOT+NSI_Tot_Score+LOC,data=aov_data,family="binomial")
  prob<-predict(logic_fit,type=c("response"))
  aov_data$prob=prob
  g<-pROC::roc(I~prob,data=aov_data)
  #plot(g)
  a<-cbind(Cutoff,round(g$auc,4))
  auc<-rbind(auc,a)
}

#Model:TOTAL_CENTRAL~SOT+NSI_Tot_Score+LOC
print(auc)
##       Cutoff         
##  [1,] "1"    "0.6248"
##  [2,] "2"    "0.626" 
##  [3,] "3"    "0.6001"
##  [4,] "4"    "0.6273"
##  [5,] "5"    "0.6161"
##  [6,] "6"    "0.6248"
##  [7,] "7"    "0.6834"
##  [8,] "8"    "0.7387"
##  [9,] "9"    "0.7535"
auc<-NULL
for (i in 1:9){
  Cutoff<-paste0(quo_name(i),"")
  aov_data$I<-ifelse(aov_data$Total_C>=i,1,0)
  logic_fit<-glm(I~SOT+NSI_Q2+NSI_Q4+LOC,data=aov_data,family="binomial")
  prob<-predict(logic_fit,type=c("response"))
  aov_data$prob=prob
  g<-pROC::roc(I~prob,data=aov_data)
  #plot(g)
  a<-cbind(Cutoff,round(g$auc,4))
  auc<-rbind(auc,a)
}

#Model:TOTAL_CENTRAL~SOT+NSI_Q2+NSI_Q4+LOC
print(auc)
##       Cutoff         
##  [1,] "1"    "0.6342"
##  [2,] "2"    "0.6483"
##  [3,] "3"    "0.6076"
##  [4,] "4"    "0.6486"
##  [5,] "5"    "0.6361"
##  [6,] "6"    "0.6453"
##  [7,] "7"    "0.7123"
##  [8,] "8"    "0.7509"
##  [9,] "9"    "0.7692"

AoV Testing

  We will now compare variable response between the various cutoffs of Central Dysfunction. P-values are provided which result from the MANOVA testing.

aov_list<-NULL
for (i in 1:9){
  aov_data$I<-ifelse(aov_data$Total_C>=i,"1","0")
  name<-paste0(quo_name(i),"")
  i<-round(summary(manova(cbind(ABC_Tot_Score,NSI_Tot_Score,PCLM_Tot_Score,PHQ9_Tot_Score,GAD7_Tot_Score,DHI_Tot_Score,FGA,SOT,LOC,AOC,PTA,symp_tot)~I,data=aov_data))$stats[11],5)
  test<-cbind(name,i)
  aov_list<-rbind(aov_list,test)}

#Model: ABC_Tot_Score,NSI_Tot_Score,PCLM_Tot_Score,PHQ9_Tot_Score,GAD7_Tot_Score,DHI_Tot_Score,FGA,SOT,LOC,AOC,PTA,symp_tot~TOTAL_CENTRAL
print(aov_list) 
##       name i        
##  [1,] "1"  "0.15953"
##  [2,] "2"  "0.06346"
##  [3,] "3"  "0.07946"
##  [4,] "4"  "0.07251"
##  [5,] "5"  "0.704"  
##  [6,] "6"  "0.80288"
##  [7,] "7"  "0.59811"
##  [8,] "8"  "0.01507"
##  [9,] "9"  "0.00187"
# 
# for (i in 1:9){
#   aov_data$I<-ifelse(aov_data$Total_C>=i,"1","0")
#   name<-paste0(quo_name(i),"")
#   i<-summary(manova(cbind(ABC_Tot_Score,NSI_Tot_Score,PCLM_Tot_Score,PHQ9_Tot_Score,GAD7_Tot_Score,DHI_Tot_Score,FGA,SOT,LOC,AOC,PTA,symp_tot)~I+Age,data=aov_data))
#   print(i)
# }

aov_list<-NULL
for (i in 1:9) {
  aov_data$I<-ifelse(aov_data$Total_C>=i,"1","0")
  name<-paste0(quo_name(i),"")
  i<-round(summary(manova(cbind(NSI_Tot_Score,SOT,LOC)~I,data=aov_data))$stats[11],5)
  test<-cbind(name,i)
  aov_list<-rbind(aov_list,test) }
#Model: NSI_Tot_Score+SOT+LOC~TOTAL_CENTRAL
print(aov_list) 
##       name i        
##  [1,] "1"  "0.01794"
##  [2,] "2"  "0.00195"
##  [3,] "3"  "0.00531"
##  [4,] "4"  "0.00183"
##  [5,] "5"  "0.1332" 
##  [6,] "6"  "0.15853"
##  [7,] "7"  "0.09409"
##  [8,] "8"  "0.0271" 
##  [9,] "9"  "0.00982"
aov_list<-NULL
for (i in 1:9) {
  aov_data$I<-ifelse(aov_data$Total_C>=i,"1","0")
  name<-paste0(quo_name(i),"")
  i<-round(summary(manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=aov_data))$stats[11],5)
  test<-cbind(name,i)
  aov_list<-rbind(aov_list,test) }

#Model: NSI_Q2+NSI_Q4+SOT+LOC~TOTAL_CENTRAL
print(aov_list) 
##       name i        
##  [1,] "1"  "0.01578"
##  [2,] "2"  "0.00028"
##  [3,] "3"  "0.00765"
##  [4,] "4"  "5e-04"  
##  [5,] "5"  "0.01306"
##  [6,] "6"  "0.07586"
##  [7,] "7"  "0.16165"
##  [8,] "8"  "0.01618"
##  [9,] "9"  "0.01105"

Cutoffs and Specific Vestib Tests

  We will explore the population make ups utilizing 2:5 central cutoffs. We will compare their mean responses on our dataset.

Cutoff of 1

dhi$I<-ifelse(dhi$Total_C>=1,"1","0")
vestib<-dhi[,c(2:34,204)]
scores<-dhi[,c(37,38,66,81,85:90,107,142,161,70,201:204)]
dem<-dhi[,c(39:46,162:169,170,204)]

dm<-dem%>%
  filter(!is.na(I))%>%
  select(-c(Gender,Service,Special_stat,TypeParticipant,Motion_Sensitivity_Present:Syncope_pre_syncope_Present,Age_lbl))%>%
  group_by(I)%>%
  summarise_all(means)
kable(dm)
I LOC AOC PTA Age TimeInService symp_tot med_ct
0 1.275862 2.150685 0.3241379 37.91558 17.55357 1.388889 0.3831169
1 1.335727 2.434783 0.3050542 39.09338 18.29219 1.629091 0.6808149
ss<-scores%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(means)

kable(ss)
I SOT FGA ABC_Tot_Score GAD7_Tot_Score NSI_Q1 NSI_Q2 NSI_Q3 NSI_Q4 NSI_Q5 NSI_Q6 NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score DHI_Tot_Score P Fu E
0 84.23077 28.61240 86.40487 9.646018 0.8881579 0.8421053 0.8486842 1.684211 0.3377483 1.079470 31.48026 43.94040 9.66000 11.36913 4.517857 3.238938 3.646018
1 82.37575 27.55556 86.31502 10.857750 1.0963855 0.9948454 1.0706897 2.012007 0.5955250 1.343643 37.17496 46.84247 11.53108 18.76256 6.258873 5.462500 5.766667
colnames(vestib)<-sub("Vestibular_Oculomotor_","",colnames(vestib))
colnames(vestib)<-sub("Vestibular_Positioning_","",colnames(vestib))
colnames(vestib)<-sub("_Abnormal","",colnames(vestib))

vt<-vestib%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(funs(sum(.=="C",na.rm=TRUE)))

vt<-melt(vt)
vt$value<-as.numeric(vt$value)
o<-sum(dhi$I=="0")
i<-sum(dhi$I=="1")
vt$Mean<-ifelse(vt$I=="1",round(vt$value/i*100,3),round(vt$value/o*100,3))
vt<-vt%>%filter(!value==0)%>%arrange(-Mean)

kable(vt[,-1])
variable value Mean
Smooth_Pursuit_Vertical 481 81.664
Smooth_Pursuit_Horizontal 201 34.126
Saccades_Vertical 189 32.088
Vestibular_VNGTest_DixHallpike_Head_Right 127 21.562
Vestibular_VNGTest_DixHallpike_Head_Left 121 20.543
Vestibular_VNGTest_Roll_Test_Lateral_Left 119 20.204
Vestibular_VNGTest_Roll_Test_Lateral_Right 106 17.997
Gaze_Right 79 13.413
Gaze_Left 79 13.413
Saccades_Horizontal 75 12.733
GazeRL 75 12.733
Gaze_Up 44 7.470
Spon_Gaze 34 5.772
Gaze_Center 31 5.263
Gaze_Down 29 4.924
Optokinetic 23 3.905
Vestibular_VNGTest_Horizontal_Head_Shake 20 3.396
Spontaneous_Nystagmus 18 3.056
supine_Gaze_up 7 1.188
GazeR 4 0.679
GazeL 4 0.679
supine_Gaze_Center 1 0.170
Vestibular_VNGTest_Roll_Test_Body_Right 1 0.170
mnv<-manova(cbind(SOT,FGA, ABC_Tot_Score,DHI_Tot_Score,GAD7_Tot_Score, NSI_Tot_Score,NSI_Q2, NSI_Q3, NSI_Q4,NSI_Q5,NSI_Q6, PCLM_Tot_Score, PHQ9_Tot_Score, P, Fu)~I,data=scores)
summary(mnv)
##            Df   Pillai approx F num Df den Df Pr(>F)
## I           1 0.047007   1.4436     15    439 0.1231
## Residuals 453
summary.aov(mnv)
##  Response SOT :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   163.8 163.757  5.3948 0.02064 *
## Residuals   453 13750.6  30.355                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response FGA :
##              Df  Sum Sq Mean Sq F value    Pr(>F)    
## I             1   46.88  46.883  12.993 0.0003473 ***
## Residuals   453 1634.52   3.608                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response ABC_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    652  651.70  2.2953 0.1305
## Residuals   453 128619  283.93               
## 
##  Response DHI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   3729  3728.8  9.5296 0.002146 **
## Residuals   453 177250   391.3                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response GAD7_Tot_Score :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   116.4 116.431  3.4639 0.06337 .
## Residuals   453 15226.7  33.613                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   2461  2461.4  9.5776 0.002092 **
## Residuals   453 116421   257.0                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.68 2.67766  3.7969 0.05197 .
## Residuals   453 319.47 0.70523                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q3 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   4.47  4.4699  5.5115 0.01932 *
## Residuals   453 367.39  0.8110                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1  10.53 10.5289  8.6913 0.003363 **
## Residuals   453 548.78  1.2114                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q5 :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   4.026  4.0259  6.0046 0.01465 *
## Residuals   453 303.724  0.6705                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q6 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   4.52  4.5182  4.2963 0.03876 *
## Residuals   453 476.40  1.0516                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response PCLM_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)  
## I             1   1617 1616.88  5.8697 0.0158 *
## Residuals   453 124785  275.46                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response PHQ9_Tot_Score :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   202.9 202.935  5.4201 0.02035 *
## Residuals   453 16960.7  37.441                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response P :
##              Df  Sum Sq Mean Sq F value Pr(>F)   
## I             1   321.2  321.22  8.8425 0.0031 **
## Residuals   453 16456.0   36.33                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response Fu :
##              Df  Sum Sq Mean Sq F value   Pr(>F)   
## I             1   489.7  489.66  8.8624 0.003067 **
## Residuals   453 25028.6   55.25                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 288 observations deleted due to missingness
mnv<-manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=dhi)
summary(mnv)
##            Df   Pillai approx F num Df den Df    Pr(>F)    
## I           1 0.032944   5.0843      4    597 0.0004922 ***
## Residuals 600                                              
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(mnv)
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.88 2.88220  3.6225 0.05748 .
## Residuals   600 477.39 0.79564                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## I             1  17.86  17.857  13.939 0.0002068 ***
## Residuals   600 768.63   1.281                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response SOT :
##              Df  Sum Sq Mean Sq F value   Pr(>F)   
## I             1   391.2  391.15  9.7708 0.001859 **
## Residuals   600 24019.6   40.03                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response LOC :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    0.03 0.03248   0.018 0.8933
## Residuals   600 1082.97 1.80495               
## 
## 141 observations deleted due to missingness

Cutoff of 2

dhi$I<-ifelse(dhi$Total_C>=2,"1","0")
vestib<-dhi[,c(2:34,204)]
scores<-dhi[,c(37,38,66,81,85:90,107,142,161,70,201:204)]
dem<-dhi[,c(39:46,162:169,170,204)]

dm<-dem%>%
  filter(!is.na(I))%>%
  select(-c(Gender,Service,Special_stat,TypeParticipant,Motion_Sensitivity_Present:Syncope_pre_syncope_Present,Age_lbl))%>%
  group_by(I)%>%
  summarise_all(means)
kable(dm)
I LOC AOC PTA Age TimeInService symp_tot med_ct
0 1.232082 2.325424 0.3071672 38.44795 17.86199 1.426117 0.4668770
1 1.388753 2.411911 0.3103448 39.14789 18.34531 1.689826 0.7323944
ss<-scores%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(means)

kable(ss)
I SOT FGA ABC_Tot_Score GAD7_Tot_Score NSI_Q1 NSI_Q2 NSI_Q3 NSI_Q4 NSI_Q5 NSI_Q6 NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score DHI_Tot_Score P Fu E
0 84.18113 28.36538 87.24537 10.04938 0.9070513 0.8878205 0.9038462 1.753994 0.4102564 1.214744 33.36741 44.78526 10.32237 13.15686 4.987654 3.804082 4.269388
1 81.73098 27.34648 85.68182 11.03226 1.1615202 1.0189573 1.1142857 2.085308 0.6404762 1.344418 37.94787 47.32388 11.74328 20.22381 6.586207 5.908046 6.132184
colnames(vestib)<-sub("Vestibular_Oculomotor_","",colnames(vestib))
colnames(vestib)<-sub("Vestibular_Positioning_","",colnames(vestib))
colnames(vestib)<-sub("_Abnormal","",colnames(vestib))

vt<-vestib%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(funs(sum(.=="C",na.rm=TRUE)))

vt<-melt(vt)
vt$value<-as.numeric(vt$value)
o<-sum(dhi$I=="0")
i<-sum(dhi$I=="1")
vt$Mean<-ifelse(vt$I=="1",round(vt$value/i*100,3),round(vt$value/o*100,3))
vt<-vt%>%filter(!value==0)%>%arrange(-Mean)

kable(vt[,-1])
variable value Mean
Smooth_Pursuit_Vertical 355 83.333
Smooth_Pursuit_Horizontal 194 45.540
Saccades_Vertical 182 42.723
Smooth_Pursuit_Vertical 126 39.748
Vestibular_VNGTest_DixHallpike_Head_Right 122 28.638
Vestibular_VNGTest_DixHallpike_Head_Left 119 27.934
Vestibular_VNGTest_Roll_Test_Lateral_Left 116 27.230
Vestibular_VNGTest_Roll_Test_Lateral_Right 105 24.648
Gaze_Right 75 17.606
Gaze_Left 75 17.606
Saccades_Horizontal 73 17.136
GazeRL 71 16.667
Gaze_Up 42 9.859
Spon_Gaze 34 7.981
Gaze_Center 31 7.277
Gaze_Down 29 6.808
Optokinetic 23 5.399
Spontaneous_Nystagmus 18 4.225
Vestibular_VNGTest_Horizontal_Head_Shake 17 3.991
Smooth_Pursuit_Horizontal 7 2.208
Saccades_Vertical 7 2.208
Vestibular_VNGTest_DixHallpike_Head_Right 5 1.577
supine_Gaze_up 6 1.408
Gaze_Right 4 1.262
Gaze_Left 4 1.262
GazeRL 4 1.262
Vestibular_VNGTest_Horizontal_Head_Shake 3 0.946
Vestibular_VNGTest_Roll_Test_Lateral_Left 3 0.946
GazeR 4 0.939
GazeL 4 0.939
Saccades_Horizontal 2 0.631
Gaze_Up 2 0.631
Vestibular_VNGTest_DixHallpike_Head_Left 2 0.631
supine_Gaze_up 1 0.315
Vestibular_VNGTest_Roll_Test_Lateral_Right 1 0.315
supine_Gaze_Center 1 0.235
Vestibular_VNGTest_Roll_Test_Body_Right 1 0.235
mnv<-manova(cbind(SOT,FGA, ABC_Tot_Score,DHI_Tot_Score,GAD7_Tot_Score, NSI_Tot_Score,NSI_Q2, NSI_Q3, NSI_Q4,NSI_Q5,NSI_Q6, PCLM_Tot_Score, PHQ9_Tot_Score, P, Fu)~I,data=scores)
summary(mnv)
##            Df   Pillai approx F num Df den Df  Pr(>F)  
## I           1 0.060129   1.8723     15    439 0.02405 *
## Residuals 453                                          
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(mnv)
##  Response SOT :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1    299 298.972  9.9471 0.001718 **
## Residuals   453  13615  30.056                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response FGA :
##              Df  Sum Sq Mean Sq F value   Pr(>F)   
## I             1   37.86  37.858  10.435 0.001327 **
## Residuals   453 1643.54   3.628                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response ABC_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    355  355.27  1.2484 0.2645
## Residuals   453 128915  284.58               
## 
##  Response DHI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   2682 2682.30  6.8149 0.009339 **
## Residuals   453 178297  393.59                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response GAD7_Tot_Score :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1    92.4  92.364  2.7435 0.09834 .
## Residuals   453 15250.8  33.666                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   2024 2024.04  7.8461 0.005311 **
## Residuals   453 116858  257.97                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   1.62 1.61626  2.2842 0.1314
## Residuals   453 320.53 0.70757               
## 
##  Response NSI_Q3 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   3.86  3.8570  4.7478 0.02985 *
## Residuals   453 368.00  0.8124                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## I             1  13.23 13.2308  10.976 0.0009971 ***
## Residuals   453 546.07  1.2055                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q5 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.86 2.86037  4.2499 0.03982 *
## Residuals   453 304.89 0.67304                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q6 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.42 0.42491  0.4006 0.5271
## Residuals   453 480.49 1.06068               
## 
##  Response PCLM_Tot_Score :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   1272 1272.36  4.6062 0.03239 *
## Residuals   453 125130  276.22                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response PHQ9_Tot_Score :
##              Df  Sum Sq Mean Sq F value Pr(>F)  
## I             1   152.7 152.747  4.0676 0.0443 *
## Residuals   453 17010.9  37.552                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response P :
##              Df  Sum Sq Mean Sq F value   Pr(>F)   
## I             1   251.3 251.330  6.8893 0.008964 **
## Residuals   453 16525.9  36.481                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response Fu :
##              Df  Sum Sq Mean Sq F value   Pr(>F)   
## I             1   374.9  374.94  6.7552 0.009653 **
## Residuals   453 25143.3   55.50                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 288 observations deleted due to missingness
mnv<-manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=dhi)
summary(mnv)
##            Df   Pillai approx F num Df den Df    Pr(>F)    
## I           1 0.057965   9.1835      4    597 3.323e-07 ***
## Residuals 600                                              
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(mnv)
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   2.04 2.04246  2.5626 0.1099
## Residuals   600 478.22 0.79704               
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## I             1  22.93 22.9312  18.019 2.533e-05 ***
## Residuals   600 763.55  1.2726                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response SOT :
##              Df  Sum Sq Mean Sq F value  Pr(>F)    
## I             1   838.6  838.55  21.344 4.7e-06 ***
## Residuals   600 23572.2   39.29                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response LOC :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    1.35  1.3465  0.7469 0.3878
## Residuals   600 1081.66  1.8028               
## 
## 141 observations deleted due to missingness

Cutoff of 3

dhi$I<-ifelse(dhi$Total_C>=3,"1","0")
vestib<-dhi[,c(2:34,204)]
scores<-dhi[,c(37,38,66,81,85:90,107,142,161,70,201:204)]
dem<-dhi[,c(39:46,162:169,170,204)]

dm<-dem%>%
  filter(!is.na(I))%>%
  select(-c(Gender,Service,Special_stat,TypeParticipant,Motion_Sensitivity_Present:Syncope_pre_syncope_Present,Age_lbl))%>%
  group_by(I)%>%
  summarise_all(means)
kable(dm)
I LOC AOC PTA Age TimeInService symp_tot med_ct
0 1.259091 2.365079 0.2961276 38.84648 18.07644 1.489702 0.5458422
1 1.431298 2.392996 0.3307692 38.85401 18.24635 1.731518 0.7445255
ss<-scores%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(means)

kable(ss)
I SOT FGA ABC_Tot_Score GAD7_Tot_Score NSI_Q1 NSI_Q2 NSI_Q3 NSI_Q4 NSI_Q5 NSI_Q6 NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score DHI_Tot_Score P Fu E
0 83.22959 28.01837 86.92240 10.33708 0.969697 0.9134199 0.9392625 1.835853 0.4826840 1.236443 34.19006 45.39741 10.70601 15.12473 5.582173 4.509695 4.886427
1 81.98755 27.38462 85.41118 11.07018 1.195572 1.0477941 1.1697417 2.128677 0.6444444 1.378677 39.07353 47.69118 11.87121 20.84758 6.465517 5.862069 6.103448
colnames(vestib)<-sub("Vestibular_Oculomotor_","",colnames(vestib))
colnames(vestib)<-sub("Vestibular_Positioning_","",colnames(vestib))
colnames(vestib)<-sub("_Abnormal","",colnames(vestib))

vt<-vestib%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(funs(sum(.=="C",na.rm=TRUE)))

vt<-melt(vt)
vt$value<-as.numeric(vt$value)
o<-sum(dhi$I=="0")
i<-sum(dhi$I=="1")
vt$Mean<-ifelse(vt$I=="1",round(vt$value/i*100,3),round(vt$value/o*100,3))
vt<-vt%>%filter(!value==0)%>%arrange(-Mean)

kable(vt[,-1])
variable value Mean
Smooth_Pursuit_Vertical 238 86.861
Saccades_Vertical 142 51.825
Smooth_Pursuit_Vertical 243 51.812
Smooth_Pursuit_Horizontal 135 49.270
Vestibular_VNGTest_DixHallpike_Head_Right 108 39.416
Vestibular_VNGTest_Roll_Test_Lateral_Left 106 38.686
Vestibular_VNGTest_DixHallpike_Head_Left 104 37.956
Vestibular_VNGTest_Roll_Test_Lateral_Right 97 35.401
Saccades_Horizontal 62 22.628
Gaze_Right 61 22.263
Gaze_Left 61 22.263
GazeRL 57 20.803
Gaze_Up 41 14.964
Smooth_Pursuit_Horizontal 66 14.072
Spon_Gaze 31 11.314
Gaze_Center 30 10.949
Saccades_Vertical 47 10.021
Gaze_Down 27 9.854
Optokinetic 18 6.569
Spontaneous_Nystagmus 16 5.839
Vestibular_VNGTest_Horizontal_Head_Shake 12 4.380
Vestibular_VNGTest_DixHallpike_Head_Right 19 4.051
Gaze_Right 18 3.838
Gaze_Left 18 3.838
GazeRL 18 3.838
Vestibular_VNGTest_DixHallpike_Head_Left 17 3.625
Saccades_Horizontal 13 2.772
Vestibular_VNGTest_Roll_Test_Lateral_Left 13 2.772
supine_Gaze_up 6 2.190
Vestibular_VNGTest_Roll_Test_Lateral_Right 9 1.919
Vestibular_VNGTest_Horizontal_Head_Shake 8 1.706
GazeR 4 1.460
GazeL 4 1.460
Optokinetic 5 1.066
Gaze_Up 3 0.640
Spon_Gaze 3 0.640
Spontaneous_Nystagmus 2 0.426
Gaze_Down 2 0.426
supine_Gaze_Center 1 0.365
Vestibular_VNGTest_Roll_Test_Body_Right 1 0.365
Gaze_Center 1 0.213
supine_Gaze_up 1 0.213
mnv<-manova(cbind(SOT,FGA, ABC_Tot_Score,DHI_Tot_Score,GAD7_Tot_Score, NSI_Tot_Score,NSI_Q2, NSI_Q3, NSI_Q4,NSI_Q5,NSI_Q6, PCLM_Tot_Score, PHQ9_Tot_Score, P, Fu)~I,data=scores)
summary(mnv)
##            Df   Pillai approx F num Df den Df Pr(>F)
## I           1 0.042293   1.2924     15    439 0.2026
## Residuals 453
summary.aov(mnv)
##  Response SOT :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    41.4  41.357  1.3505 0.2458
## Residuals   453 13873.0  30.625               
## 
##  Response FGA :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    8.7  8.7049  2.3575 0.1254
## Residuals   453 1672.7  3.6925               
## 
##  Response ABC_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    600  599.70  2.1113 0.1469
## Residuals   453 128671  284.04               
## 
##  Response DHI_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    763  762.66  1.9171 0.1669
## Residuals   453 180216  397.83               
## 
##  Response GAD7_Tot_Score :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    37.9  37.867  1.1208 0.2903
## Residuals   453 15305.3  33.787               
## 
##  Response NSI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   2294 2294.09  8.9136 0.002984 **
## Residuals   453 116588  257.37                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   1.09 1.08669  1.5333 0.2163
## Residuals   453 321.06 0.70874               
## 
##  Response NSI_Q3 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.71  2.7098  3.3253 0.06888 .
## Residuals   453 369.15  0.8149                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1  10.30 10.2995  8.4984 0.003731 **
## Residuals   453 549.01  1.2119                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q5 :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   3.548  3.5479  5.2833 0.02198 *
## Residuals   453 304.202  0.6715                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q6 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   2.62  2.6240  2.4853 0.1156
## Residuals   453 478.29  1.0558               
## 
##  Response PCLM_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    515  514.51  1.8514 0.1743
## Residuals   453 125888  277.90               
## 
##  Response PHQ9_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1     53  53.040  1.4042 0.2366
## Residuals   453  17111  37.772               
## 
##  Response P :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    91.7  91.691  2.4893 0.1153
## Residuals   453 16685.5  36.833               
## 
##  Response Fu :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1   115.4 115.358  2.0571 0.1522
## Residuals   453 25402.9  56.077               
## 
## 288 observations deleted due to missingness
mnv<-manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=dhi)
summary(mnv)
##            Df   Pillai approx F num Df den Df   Pr(>F)   
## I           1 0.029418   4.5237      4    597 0.001317 **
## Residuals 600                                            
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(mnv)
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.54 2.54113  3.1915 0.07453 .
## Residuals   600 477.73 0.79621                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## I             1  15.24 15.2380  11.854 0.0006153 ***
## Residuals   600 771.25  1.2854                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response SOT :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   216.7 216.679  5.3735 0.02078 *
## Residuals   600 24194.0  40.323                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response LOC :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1    6.14  6.1402  3.4212 0.06486 .
## Residuals   600 1076.86  1.7948                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 141 observations deleted due to missingness

Cutoff of 4

dhi$I<-ifelse(dhi$Total_C>=4,"1","0")
vestib<-dhi[,c(2:34,204)]
scores<-dhi[,c(37,38,66,81,85:90,107,142,161,70,201:204)]
dem<-dhi[,c(39:46,162:169,170,204)]

dm<-dem%>%
  filter(!is.na(I))%>%
  select(-c(Gender,Service,Special_stat,TypeParticipant,Motion_Sensitivity_Present:Syncope_pre_syncope_Present,Age_lbl))%>%
  group_by(I)%>%
  summarise_all(means)
kable(dm)
I LOC AOC PTA Age TimeInService symp_tot med_ct
0 1.270522 2.368224 0.3158879 38.78070 18.06553 1.538606 0.5631579
1 1.493976 2.398773 0.2865854 39.07514 18.38150 1.711656 0.8034682
ss<-scores%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(means)

kable(ss)
I SOT FGA ABC_Tot_Score GAD7_Tot_Score NSI_Q1 NSI_Q2 NSI_Q3 NSI_Q4 NSI_Q5 NSI_Q6 NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score DHI_Tot_Score P Fu E
0 83.08524 27.91006 86.81935 10.39498 1.005329 0.9431616 0.9839858 1.877660 0.5186501 1.272242 34.87943 45.52837 10.80403 15.88829 5.796840 4.606742 4.943820
1 81.71711 27.35811 84.87158 11.30822 1.211765 1.0292398 1.1588235 2.163743 0.6213018 1.345029 39.68421 48.61404 12.22754 21.64912 6.324324 6.337838 6.621622
colnames(vestib)<-sub("Vestibular_Oculomotor_","",colnames(vestib))
colnames(vestib)<-sub("Vestibular_Positioning_","",colnames(vestib))
colnames(vestib)<-sub("_Abnormal","",colnames(vestib))

vt<-vestib%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(funs(sum(.=="C",na.rm=TRUE)))

vt<-melt(vt)
vt$value<-as.numeric(vt$value)
o<-sum(dhi$I=="0")
i<-sum(dhi$I=="1")
vt$Mean<-ifelse(vt$I=="1",round(vt$value/i*100,3),round(vt$value/o*100,3))
vt<-vt%>%filter(!value==0)%>%arrange(-Mean)

kable(vt[,-1])
variable value Mean
Smooth_Pursuit_Vertical 152 87.861
Smooth_Pursuit_Vertical 329 57.719
Smooth_Pursuit_Horizontal 94 54.335
Saccades_Vertical 91 52.601
Vestibular_VNGTest_Roll_Test_Lateral_Left 89 51.445
Vestibular_VNGTest_DixHallpike_Head_Right 85 49.133
Vestibular_VNGTest_Roll_Test_Lateral_Right 82 47.399
Vestibular_VNGTest_DixHallpike_Head_Left 80 46.243
Gaze_Right 48 27.746
Gaze_Left 48 27.746
Saccades_Horizontal 47 27.168
GazeRL 44 25.434
Gaze_Up 37 21.387
Smooth_Pursuit_Horizontal 107 18.772
Spon_Gaze 30 17.341
Saccades_Vertical 98 17.193
Gaze_Center 29 16.763
Gaze_Down 25 14.451
Spontaneous_Nystagmus 15 8.671
Optokinetic 15 8.671
Vestibular_VNGTest_DixHallpike_Head_Right 42 7.368
Vestibular_VNGTest_DixHallpike_Head_Left 41 7.193
Gaze_Right 31 5.439
Gaze_Left 31 5.439
GazeRL 31 5.439
Vestibular_VNGTest_Roll_Test_Lateral_Left 30 5.263
Saccades_Horizontal 28 4.912
Vestibular_VNGTest_Roll_Test_Lateral_Right 24 4.211
Vestibular_VNGTest_Horizontal_Head_Shake 7 4.046
supine_Gaze_up 4 2.312
GazeR 4 2.312
GazeL 4 2.312
Vestibular_VNGTest_Horizontal_Head_Shake 13 2.281
Optokinetic 8 1.404
Gaze_Up 7 1.228
Gaze_Down 4 0.702
Spon_Gaze 4 0.702
supine_Gaze_Center 1 0.578
Spontaneous_Nystagmus 3 0.526
supine_Gaze_up 3 0.526
Gaze_Center 2 0.351
Vestibular_VNGTest_Roll_Test_Body_Right 1 0.175
mnv<-manova(cbind(SOT,FGA, ABC_Tot_Score,DHI_Tot_Score,GAD7_Tot_Score, NSI_Tot_Score,NSI_Q2, NSI_Q3, NSI_Q4,NSI_Q5,NSI_Q6, PCLM_Tot_Score, PHQ9_Tot_Score, P, Fu)~I,data=scores)
summary(mnv)
##            Df   Pillai approx F num Df den Df Pr(>F)
## I           1 0.048818   1.5021     15    439 0.1003
## Residuals 453
summary.aov(mnv)
##  Response SOT :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    79.1  79.053  2.5884 0.1083
## Residuals   453 13835.3  30.541               
## 
##  Response FGA :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    7.15  7.1525  1.9352 0.1649
## Residuals   453 1674.25  3.6959               
## 
##  Response ABC_Tot_Score :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1    883  883.22  3.1163 0.07818 .
## Residuals   453 128387  283.42                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response DHI_Tot_Score :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   1598 1597.93  4.0353 0.04515 *
## Residuals   453 179381  395.98                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response GAD7_Tot_Score :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    78.4  78.427  2.3274 0.1278
## Residuals   453 15264.7  33.697               
## 
##  Response NSI_Tot_Score :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   2107 2106.86   8.173 0.004448 **
## Residuals   453 116776  257.78                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.97 0.96613  1.3627 0.2437
## Residuals   453 321.18 0.70900               
## 
##  Response NSI_Q3 :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1   3.34  3.3359  4.1005 0.04346 *
## Residuals   453 368.52  0.8135                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value    Pr(>F)    
## I             1  13.78 13.7850  11.447 0.0007783 ***
## Residuals   453 545.52  1.2042                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q5 :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   2.619 2.61914  3.8884 0.04923 *
## Residuals   453 305.130 0.67358                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q6 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.37 0.36618  0.3452 0.5571
## Residuals   453 480.55 1.06081               
## 
##  Response PCLM_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    655  654.92  2.3593 0.1252
## Residuals   453 125747  277.59               
## 
##  Response PHQ9_Tot_Score :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   114.2 114.163  3.0333 0.08225 .
## Residuals   453 17049.5  37.637                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response P :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    53.1  53.147  1.4396 0.2308
## Residuals   453 16724.1  36.919               
## 
##  Response Fu :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   316.6  316.58  5.6905 0.01747 *
## Residuals   453 25201.7   55.63                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 288 observations deleted due to missingness
mnv<-manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=dhi)
summary(mnv)
##            Df   Pillai approx F num Df den Df    Pr(>F)    
## I           1 0.030733   4.7324      4    597 0.0009137 ***
## Residuals 600                                              
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(mnv)
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   1.80 1.79501  2.2509 0.1341
## Residuals   600 478.47 0.79745               
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## I             1  14.61 14.6070  11.354 0.000801 ***
## Residuals   600 771.88  1.2865                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response SOT :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1   249.5 249.467  6.1951 0.01308 *
## Residuals   600 24161.3  40.269                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response LOC :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1    6.64  6.6378  3.7001 0.05488 .
## Residuals   600 1076.37  1.7939                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## 141 observations deleted due to missingness

Cutoff of 5

dhi$I<-ifelse(dhi$Total_C>=5,"1","0")
vestib<-dhi[,c(2:34,204)]
scores<-dhi[,c(37,38,66,81,85:90,107,142,161,70,201:204)]
dem<-dhi[,c(39:46,162:169,170,204)]

dm<-dem%>%
  filter(!is.na(I))%>%
  select(-c(Gender,Service,Special_stat,TypeParticipant,Motion_Sensitivity_Present:Syncope_pre_syncope_Present,Age_lbl))%>%
  group_by(I)%>%
  summarise_all(means)
kable(dm)
I LOC AOC PTA Age TimeInService symp_tot med_ct
0 1.299501 2.328882 0.312187 38.96081 18.25133 1.557983 0.5940439
1 1.465347 2.656566 0.290000 38.17143 17.45714 1.707071 0.7714286
ss<-scores%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(means)

kable(ss)
I SOT FGA ABC_Tot_Score GAD7_Tot_Score NSI_Q1 NSI_Q2 NSI_Q3 NSI_Q4 NSI_Q5 NSI_Q6 NSI_Tot_Score PCLM_Tot_Score PHQ9_Tot_Score DHI_Tot_Score P Fu E
0 82.87132 27.78748 86.59934 10.43699 1.027027 0.9634921 1.012719 1.914422 0.5389507 1.273450 35.54992 45.89223 10.95417 16.79100 5.847390 4.848000 5.160000
1 82.05618 27.71591 84.90489 11.61957 1.211539 0.9615385 1.097087 2.125000 0.5631068 1.384615 38.71154 48.39423 12.23529 19.96154 6.365591 6.064516 6.451613
colnames(vestib)<-sub("Vestibular_Oculomotor_","",colnames(vestib))
colnames(vestib)<-sub("Vestibular_Positioning_","",colnames(vestib))
colnames(vestib)<-sub("_Abnormal","",colnames(vestib))

vt<-vestib%>%
  filter(!is.na(I))%>%
  group_by(I)%>%
  summarise_all(funs(sum(.=="C",na.rm=TRUE)))

vt<-melt(vt)
vt$value<-as.numeric(vt$value)
o<-sum(dhi$I=="0")
i<-sum(dhi$I=="1")
vt$Mean<-ifelse(vt$I=="1",round(vt$value/i*100,3),round(vt$value/o*100,3))
vt<-vt%>%filter(!value==0)%>%arrange(-Mean)

kable(vt[,-1])
variable value Mean
Smooth_Pursuit_Vertical 96 91.429
Vestibular_VNGTest_Roll_Test_Lateral_Left 64 60.952
Smooth_Pursuit_Vertical 385 60.345
Vestibular_VNGTest_Roll_Test_Lateral_Right 61 58.095
Saccades_Vertical 60 57.143
Smooth_Pursuit_Horizontal 58 55.238
Vestibular_VNGTest_DixHallpike_Head_Right 58 55.238
Vestibular_VNGTest_DixHallpike_Head_Left 56 53.333
Gaze_Right 37 35.238
Gaze_Left 36 34.286
GazeRL 33 31.429
Gaze_Up 30 28.571
Saccades_Horizontal 29 27.619
Spon_Gaze 25 23.810
Gaze_Center 24 22.857
Smooth_Pursuit_Horizontal 143 22.414
Saccades_Vertical 129 20.219
Gaze_Down 21 20.000
Spontaneous_Nystagmus 14 13.333
Vestibular_VNGTest_DixHallpike_Head_Right 69 10.815
Vestibular_VNGTest_DixHallpike_Head_Left 65 10.188
Optokinetic 10 9.524
Vestibular_VNGTest_Roll_Test_Lateral_Left 55 8.621
Saccades_Horizontal 46 7.210
Vestibular_VNGTest_Roll_Test_Lateral_Right 45 7.053
Gaze_Left 43 6.740
Gaze_Right 42 6.583
GazeRL 42 6.583
Vestibular_VNGTest_Horizontal_Head_Shake 6 5.714
supine_Gaze_up 4 3.810
GazeR 4 3.810
GazeL 3 2.857
Gaze_Up 14 2.194
Vestibular_VNGTest_Horizontal_Head_Shake 14 2.194
Optokinetic 13 2.038
Spon_Gaze 9 1.411
Gaze_Down 8 1.254
Gaze_Center 7 1.097
supine_Gaze_Center 1 0.952
Spontaneous_Nystagmus 4 0.627
supine_Gaze_up 3 0.470
Vestibular_VNGTest_Roll_Test_Body_Right 1 0.157
GazeL 1 0.157
mnv<-manova(cbind(SOT,FGA, ABC_Tot_Score,DHI_Tot_Score,GAD7_Tot_Score, NSI_Tot_Score,NSI_Q2, NSI_Q3, NSI_Q4,NSI_Q5,NSI_Q6, PCLM_Tot_Score, PHQ9_Tot_Score, P, Fu)~I,data=scores)
summary(mnv)
##            Df  Pillai approx F num Df den Df Pr(>F)
## I           1 0.03491   1.0587     15    439 0.3935
## Residuals 453
summary.aov(mnv)
##  Response SOT :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    61.2  61.218  2.0018 0.1578
## Residuals   453 13853.1  30.581               
## 
##  Response FGA :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    0.31  0.3062  0.0825 0.7741
## Residuals   453 1681.09  3.7110               
## 
##  Response ABC_Tot_Score :
##              Df Sum Sq Mean Sq F value  Pr(>F)  
## I             1    852  852.12  3.0059 0.08364 .
## Residuals   453 128419  283.48                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response DHI_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    562  561.63  1.4102 0.2357
## Residuals   453 180417  398.27               
## 
##  Response GAD7_Tot_Score :
##              Df  Sum Sq Mean Sq F value  Pr(>F)  
## I             1    97.9  97.931  2.9099 0.08872 .
## Residuals   453 15245.2  33.654                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)  
## I             1    751  751.38  2.8813 0.0903 .
## Residuals   453 118131  260.78                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.00 0.00477  0.0067 0.9348
## Residuals   453 322.14 0.71113               
## 
##  Response NSI_Q3 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   1.12 1.11958   1.368 0.2428
## Residuals   453 370.74 0.81841               
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value   Pr(>F)   
## I             1   8.78  8.7772  7.2223 0.007466 **
## Residuals   453 550.53  1.2153                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response NSI_Q5 :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1   1.201 1.20122  1.7751 0.1834
## Residuals   453 306.548 0.67671               
## 
##  Response NSI_Q6 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.01 0.00971  0.0091 0.9239
## Residuals   453 480.90 1.06160               
## 
##  Response PCLM_Tot_Score :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1    566  565.51  2.0358 0.1543
## Residuals   453 125837  277.78               
## 
##  Response PHQ9_Tot_Score :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    94.4  94.429   2.506 0.1141
## Residuals   453 17069.3  37.680               
## 
##  Response P :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    25.1  25.112  0.6791 0.4103
## Residuals   453 16752.1  36.980               
## 
##  Response Fu :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    87.2  87.207  1.5534 0.2133
## Residuals   453 25431.1  56.139               
## 
## 288 observations deleted due to missingness
mnv<-manova(cbind(NSI_Q2,NSI_Q4,SOT,LOC)~I,data=dhi)
summary(mnv)
##            Df   Pillai approx F num Df den Df Pr(>F)
## I           1 0.012892   1.9493      4    597 0.1008
## Residuals 600
summary.aov(mnv)
##  Response NSI_Q2 :
##              Df Sum Sq Mean Sq F value Pr(>F)
## I             1   0.01 0.01467  0.0183 0.8924
## Residuals   600 480.25 0.80042               
## 
##  Response NSI_Q4 :
##              Df Sum Sq Mean Sq F value Pr(>F)  
## I             1   5.21  5.2064  3.9983  0.046 *
## Residuals   600 781.28  1.3021                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##  Response SOT :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    69.1  69.098  1.7032 0.1924
## Residuals   600 24341.6  40.569               
## 
##  Response LOC :
##              Df  Sum Sq Mean Sq F value Pr(>F)
## I             1    1.25  1.2493  0.6929 0.4055
## Residuals   600 1081.76  1.8029               
## 
## 141 observations deleted due to missingness

Medications

Comments/Questions:

Prior Percentage of patients with central dysfunction Particular test thats significant of central signs <Explore individuals signs - those with our cutoff score Control for Medications - subset data with AM/PM <Significance of either

Meeting Comments: Fix complaints/comments Medication and compare - look at counts as well Finalize Mean Comparisons - tukey/scheffe test; examine graphs - main aspect of paper